package app.bskkorren.dto;



public class Archer
{
	private String klubbid;

	private String name;

	private String id;

	private KlassEnum klass;

	private	Result result = null;

	private boolean hasPayed = false;


	public Archer() {}

	public Archer(String klubbid, String name, KlassEnum klass)
	{
		this.klubbid = klubbid;
		this.name = name;
		this.id = nameToId(name);
		this.klass = klass;
	}

	public Archer(String klubbid, String name, KlassEnum klass, Result result)
	{
		this.klubbid = klubbid;
		this.name = name;
		this.id = nameToId(name);
		this.klass = klass;
		this.result = result;
	}

	public String getKlubbid()
	{
		return klubbid;
	}

	public void setKlubbid(String klubbid)
	{
		this.klubbid = klubbid;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public String getId()
	{
		return id;
	}

	public static String nameToId(String name)
	{
		return name.toLowerCase().replace(" ", "").trim();
	}

	public KlassEnum getKlass()
	{
		return klass;
	}

	public void setKlass(KlassEnum klass)
	{
		this.klass = klass;
	}

	public Result getResult()
	{
		return result;
	}

	public void setResult(Result r)
	{
		this.result = r;
	}

	public boolean isHasPayed()
	{
		return hasPayed;
	}

	public void setHasPayed(boolean hasPayed)
	{
		this.hasPayed = hasPayed;
	}

	@Override
	public String toString()
	{
		return "Skytt [klubbid=" + klubbid + ", namn=" + name + ", skyttid="
				+ id + ", klass=" + klass + ", resultat="
				+ result.toString() + "]";
	}

	@Override
	public int hashCode()
	{
		final int prime = 31;
		int result = 1;
		result = prime * result + ((klass == null) ? 0 : klass.hashCode());
		result = prime * result + ((klubbid == null) ? 0 : klubbid.hashCode());
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj)
	{
		if (this == obj) return true;
		if (obj == null) return false;

		if (getClass() != obj.getClass()) return false;
		Archer other = (Archer) obj;
		if (klass != other.klass) return false;

		if (klubbid == null && other.klubbid != null) {
				return false;
		}
		else if (!klubbid.equals(other.klubbid)) {
			return false;
		}
		if (id == null && other.id != null) {
				return false;
		}
		else if (!id.equals(other.id)) {
			return false;
		}
		return true;
	}

}
